package com.cfpamf.athean.rabbit.mq.plus.domain.dto;

import com.cfpamf.athean.rabbit.mq.plus.consumer.listener.RabbitMqPlusConsumerListener;

import lombok.Data;

/**
 * 类RabbitMqPlusConsumerDTO.java的实现描述：
 *
 * @author Andy（陈洪桥）2022年11月26 16:45
 */
@Data
public class RabbitMqPlusConsumerDTO implements java.io.Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1385182207946472492L;

    private String exchangeName;

    private String queueName;

    private String consumerTypeCode;

    private String consumerTypeDesc;

    /**
     * consumerTag，假设Consumer#1希望消费带tag1标记的消息，那么Consumer#1可以在向Broker请求Basic.Consume指令时，捎带自己期望的Tag字符串
     */
    private String consumerTag;
    /**
     * 补偿频率初始值（单位分钟，默认5分钟，按5*2的时间阶梯策略，直到达到补偿时长。补偿时间：5、10、20、40、80、160分钟的方式依次执行）
     */
    private int retryDurationByMinute = 5;

    /**
     * 最大重试次数，默认0，不重试
     */
    private int maxRetryCount = 0;
    /**
     * 消费监听接口
     */
    private RabbitMqPlusConsumerListener rabbitMqPlusConsumerListener;

}
